Tartalom
   

Tömb feltöltése véletlen számokkal és az elemek elrendezése gyorsrendezéssel, eljárások használatával (Gyorsrendezes.pas)

program Gyorsrendezes;
uses crt;
var n:integer;
    a:array [1..300] of integer;

procedure cserel(mit,mire:integer);
var x:integer;
begin
   x:=a[mit];
   a[mit]:=a[mire];
   a[mire]:=x;
   end;

procedure feltolt;
var i:integer;
begin
   for i:=1 to n do begin
      a[i]:=trunc(90*random)+1;
      end;
   end;

procedure kiir;
var i:integer;
begin
   for i:=1 to n do begin
      writeln(a[i]);
      end;
   end;

function szetvalaszt(bal,jobb:integer):integer;
var i,j,x:integer;
begin
   i:=bal-1;
   j:=jobb;
   x:=a[jobb];
   repeat
      repeat inc(i);
         until (a[i]>=x);
      repeat dec(j);
         if(a[j]<x) then break;
         until (j<=bal);
      if (i>=j) then break
      else cserel(i,j);
      until(false);
   cserel(i,jobb);
   szetvalaszt:=i;
   end;

procedure gyorsrendez(bal,jobb:integer);
var kozep:integer;
begin
   if(bal<jobb) then begin
      kozep:=szetvalaszt(bal,jobb);
      gyorsrendez(bal,kozep-1);
      gyorsrendez(kozep+1,jobb);
      end;
   end;

BEGIN
   clrscr;
   write('n:= ');
   readln(n);
   feltolt;
   writeln('A szamok rendezes elott:');
   kiir;
   writeln('A szamok rendezes utan:');
   gyorsrendez(1,n);
   kiir;
   readkey;
END.